package kycadminevent

import (
	"context"

	"code.bydev.io/cht/customer/kyc_admin_service/internal/pkg/kycadminevent/dto"
	"code.bydev.io/cht/customer/kyc_admin_service/internal/pkg/kycadminrepo/o_kyc_action_state"
	"code.bydev.io/cht/customer/kyc_admin_service/internal/pkg/kycadminrepo/o_kyc_record_common"
	kpdto "code.bydev.io/cht/customer/kyc_admin_service/internal/pkg/kycprovider/dto"
	"code.bydev.io/cht/customer/kyc_dbstructure.git/pkg/o_kyc_action_image"
)

type KycNotifyRepo interface {
	ActionStateHandler(ctx context.Context, ntf *dto.KYCEventNotify) (bool, error)
	GetJumioWrkFlwID(ctx context.Context, memberID int64) (string, string, error)
	GetProviderDecisionMaps(ctx context.Context, provider int8) (map[string]string, error)
	GetLatestL1WrkFlwID(ctx context.Context, memberID int64) (string, string, string, error)
	GetKYCRecordCommon(ctx context.Context, memberID int64) (*o_kyc_record_common.Record, error)
	ActionImageComplete(ctx context.Context, record *o_kyc_action_image.Record, doc *kpdto.Document) error
	GetSelfieRecord(ctx context.Context, memberID int64) (*o_kyc_action_image.Record, error)
	// GetActionByIdempotentID 根据idempotentID获取记录
	GetActionByIdempotentID(ctx context.Context, idempotentID string) (*o_kyc_action_state.Record, error)
}
